home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UTIL / SCREEN / CURSES01 / amiga / h / acurses next >
Text File  |  1992-02-27  |  2KB  |  89 lines

  1.   
  2. #include "curses.h"
  3.   
  4. /*
  5.  *
  6.  * Module      : acurses.h
  7.  *
  8.  * Description : Header file for AMIGA CURSES package.
  9.  *
  10.  * Author      : Simon Raybould  (sie@fulcrum.bt.co.uk)
  11.  *
  12.  * Date        : 16th February 1990
  13.  *
  14.  */
  15.   
  16.   
  17. #define MAXTEXTLEN    80    /* Max text to an output call */
  18. #define SOUNDLENGTH    2    /* Number of bytes in the sound wave */
  19. #define CAPSMASK    0x07    /* leftshift | rightshift | capslock */
  20. #define SHIFTMASK    0x03    /* leftshift | rightshift */
  21.   
  22. /*
  23.  *    Characters
  24.  */
  25.   
  26. #define BS            0x08    /* Backspace */
  27. #define CR            0x0d    /* Carriage return */
  28.   
  29. /*
  30.  *    My Flags. These are global to all windows, not window specific.
  31.  */
  32.  
  33. #define CFLAG_CURSOR    (1<<0)    /* T=Cursor on, F=Cursor off. */
  34. #define CFLAG_CBREAK    (1<<1)    /* T=cbreak mode, F=nocbreak mode */
  35. #define CFLAG_NLCR    (1<<2)    /* T=nl to cr mapping, F=no mapping */
  36. #define    CFLAG_ECHO    (1<<3)    /* T=Echo enabled, F=no echo */
  37. #define    CFLAG_INITSCR    (1<<4)    /* T=initscr has been called */
  38.  
  39. /*
  40.  *    WINDOW flags, these are specific to each window.
  41.  */
  42.  
  43. #define CWF_MOVED    (1<<0)    /* move() has been done on this window */
  44.  
  45. /*
  46.  *    Buffer size for raw key events.
  47.  */
  48. #define RAWBUFSIZ    32
  49.  
  50. /*
  51.  *    Scroll directions
  52.  */
  53. #define SCROLL_UP    1
  54. #define SCROLL_DOWN    2
  55.  
  56. /*
  57.  *    Internal structures.
  58.  */
  59.  
  60. struct LineElement {
  61.   unsigned char Touched;    /* This line needs refreshing */
  62.   char *Line;    /* Actual text */
  63.   char *LRLine;    /* text when last refreshed */
  64.   short *ATTRS;    /* Attributes */
  65.   short *LRATTRS;    /* Attributes when last refreshed */
  66.   unsigned char StartCol;
  67.   unsigned char EndCol;
  68. };
  69.  
  70. struct WindowState {
  71.   WINDOW *ParentWin;
  72.   WINDOW Window;
  73.   short ScrollTop;
  74.   short ScrollBot;
  75.   struct WindowState *Prev;
  76.   struct WindowState *Next;
  77.   struct LineElement *LnArry;
  78.   unsigned char NLines;
  79. };
  80.  
  81. /*
  82.  *    Simple implementation of wnoutrefresh() and doupdate()
  83.  */
  84.  
  85. struct RefreshElement {
  86.   WINDOW *WinPtr;
  87.   struct RefreshElement *Next;
  88. };
  89.